exports.install = function(Vue, options) {
  /**
   * 路径参数替换
   * @pathParams {Object} 路径参数
   */
  Vue.prototype.$pathParams = function(path, pathParams) {
    if (path.includes("{") && pathParams) {
      let keys = Object.keys(pathParams);
      keys.forEach(it => {
        path = path.replace("{" + `${it}` + "}", pathParams[it]);
      });
    }
    return path;
  };

  /**
   * 过滤选项的编号
   * @index {Number} 下标
   */
  Vue.prototype.formatQuestionIndex = function(index) {
    return String.fromCharCode(index + 65);
  };

  /**
   *
   * 过滤标准日期为 x-x-x
   * @time {String} 标准日期时间格式
   */
  Vue.prototype.formateDatesFun = function(time) {
    // 全局函数
    // 获取当前日期
    let date = new Date(time);
    // 获取当前月份
    let nowMonth = date.getMonth() + 1;
    // 获取当前是几号
    let strDate = date.getDate();
    // 添加分隔符“-”
    let seperator = "-";
    // 对月份进行处理，1-9月在前面添加一个“0”
    if (nowMonth >= 1 && nowMonth <= 9) {
      nowMonth = "0" + nowMonth;
    }
    // 对月份进行处理，1-9号在前面添加一个“0”
    if (strDate >= 0 && strDate <= 9) {
      strDate = "0" + strDate;
    }
    // 最后拼接字符串，得到一个格式为(yyyy-MM-dd)的日期
    return date.getFullYear() + seperator + nowMonth + seperator + strDate;
  };

  /**
   *
   * 过滤标准日期为 x-x-x x:x:x
   * @time {String} 标准日期时间格式
   */
  Vue.prototype.formateDateTimeFun = function(time) {
    // 全局函数
    // 获取当前日期
    let date = new Date(time);
    // 获取当前月份
    let nowMonth = date.getMonth() + 1;
    // 获取当前是几号
    let strDate = date.getDate();
    // 对月份进行处理，1-9月在前面添加一个“0”
    if (nowMonth >= 1 && nowMonth <= 9) {
      nowMonth = "0" + nowMonth;
    }
    // 对月份进行处理，1-9号在前面添加一个“0”
    if (strDate >= 0 && strDate <= 9) {
      strDate = "0" + strDate;
    }
    let hours = date.getHours();
    let minutes = date.getMinutes();
    if (minutes >= 0 && minutes <= 9) {
      minutes = "0" + minutes;
    }
    let seconds = date.getSeconds();
    if (seconds >= 0 && seconds <= 9) {
      seconds = "0" + seconds;
    }
    // 最后拼接字符串，得到一个格式为(yyyy-MM-dd hh:mm:ss)的日期
    return date.getFullYear() + "-" + nowMonth + "-" + strDate + " " + hours + ":" + minutes + ":" + seconds;
  };

  /**
   * 根据秒数获取 XX时:XX分:XX秒
   * @secondsNumber {Number} 数字
   */
  Vue.prototype.getTimeHoursMinuteSecondsFun = function(secondsNumber) {
    let hours = Math.floor(secondsNumber / (60 * 60));
    let minutes = Math.floor((secondsNumber - hours * 60 * 60) / 60);
    let seconds = Math.floor(secondsNumber - hours * 60 * 60 - minutes * 60);
    let timeDiff = zero(hours) + ":" + zero(minutes) + ":" + zero(seconds);
    // 数字补零
    function zero(num) {
      return num < 10 ? "0" + num : num;
    }
    return timeDiff;
  };

  /**
   * 判断一个数是否为质数
   * @num 数字
   */
  Vue.prototype.$pushHN = function(num) { // 全局函数
    // 不是数字或者数字小于2
    if (typeof num !== "number" || !Number.isInteger(num)) {
      // Number.isInterget 判断是否为整数
      return false;
    }
    // 2是质数
    if (num === 2) {
      return true;
    } else if (num % 2 === 0) {
      // 排除偶数
      return false;
    }
    // 依次判断是否能被奇数整除，最大循环为数值的开方
    var squareRoot = Math.sqrt(num);
    // 因为2已经验证过，所以从3开始；且已经排除偶数，所以每次加2
    for (var i = 3; i <= squareRoot; i += 2) {
      if (num % i === 0) {
        return false;
      }
    }
    return true;
  };
  // Vue.prototype.$pushHN = function() { // 全局函数
  //     xxx
  // };
};
